<?php
namespace Personnelsystem\Controller;

use Think\Controller;

require('lib/PHPExcel.php');
require('lib/PHPExcel/IOFactory.php');

header("content-type:text/html;charset=utf-8");

class RegioneController extends LoginTrueController
{

    //行政区列表
    public function regionelists(){
        $this->LoginTrue();
        $regione=M("regione");
        $lib=new LibController();

        $regione_list = $regione->select();


        $regioneid=$_POST["regione1"];  //地区查询
        if(!empty($_POST["regione2"])){
            $regioneid=$_POST["regione2"];
        }
        if(!empty($_POST["regione3"])){
            $regioneid=$_POST["regione3"];
        }
        if(!empty($_POST["regione4"])){
            $regioneid=$_POST["regione4"];
        }

        if(!empty($regioneid)){     //如果地区查询
            $regionelists=$regione->where("pId='{$regioneid}'")->select();

            $lib->getFatherRegione($regione_list,$regioneid);
            $flagFn=$fn=count($lib->father_Regione);
            for($fn ;$fn>0;$fn--){
                if($fn==1){
                    $regione1=session('regione1');
                    //$regione1[]=$lib->father_Regione[$flagFn-1];
                    if($flagFn==1){
                        $pId=$lib->father_Regione[$flagFn-1]['id'];
                        $regione2=$regione->where("pId=$pId")->select();
                    }
                }
                if($fn==2){
                    if(!empty(session('regione2'))){
                        $regione2=session('regione2');
                    }else{
                        $regione2=$regione->where("pId='{$_POST['regione1']}'")->select();
                    }
                    if($flagFn==2){
                        $pId=$lib->father_Regione[$flagFn-2]['id'];
                        $regione3=$regione->where("pId=$pId")->select();
                    }
                }
                if($fn==3){
                    if(!empty(session('regione3'))){
                        $regione3=session('regione3');
                    }else{
                        $regione3=$regione->where("pId='{$_POST['regione2']}'")->select();
                    }
                    if($flagFn==3){
                        $pId=$lib->father_Regione[$flagFn-3]['id'];
                    }
                }

            }
        }else{
            $regione1=session('regione1');
            $regione2=session('regione2');
            $regione3=session('regione3');
            if(count($regione3)==1){
                $where="pId='{$regione3[0]['id']}'";
            }elseif(count($regione2)==1){
                $where="pId='{$regione2[0]['id']}'";
            }elseif(count($regione1)==1){
                $where="pId='{$regione1[0]['id']}'";
            }else{
                $where="pId='650000000000'";
            }
            $regionelists=$regione->where($where)->select();
        }




        $this->assign("regione1",$regione1);
        $this->assign("regione2",$regione2);
        $this->assign("regione3",$regione3);
        $this->assign("regione1id",$_POST['regione1']);
        $this->assign("regione2id",$_POST['regione2']);
        $this->assign("regione3id",$_POST['regione3']);

        $this->assign("regionelists",$regionelists);
        $powersValue=session('aPowers');
        $this->assign("powersValue",$powersValue);

        $this->display();
    }
    //修改行政区名称
    public function regioneupdate(){
        $this->LoginAreaAdmin();
        $this->LoginTrue();
        $id=$_GET["id"];
        $regione=M("regione");
        $rs_regione=$regione->where("id='{$id}'")->find();
        $this->assign("rs_regione",$rs_regione);
        $this->display();
    }
    public function UpdateRegioneAction(){
        $this->LoginAreaAdmin();
        $this->LoginTrue();
        $updateId=$_GET["updateId"];
        $data["name"]=$_POST["name"];
        $data["id"]=$_POST["id"];
        $regione=M("regione");
        $result=$regione->where("id='{$updateId}'")->save($data);
        if($result){
            $this->success("修改成功",U("regionelists"));
        }else{
            $this->error("修改失败");
        }
    }
    //删除行政区
    public function DelRegione(){
        $this->LoginAreaAdmin();
        $this->LoginTrue();
        $id=$_GET["id"];
        $regione=M("regione");
        $department=M("department");
        $rs_regione=$regione->where("pId='{$id}'")->select();
        if(!empty($rs_regione)){
            $this->error("该行政区下有下级行政区，无法删除，请删除所有下级后再删除");
        }
        $re_xiaozu=$department->where("pId='{$id}'")->select();
        if(!empty($re_xiaozu)){
            $this->error("该行政区下有下级小组，无法删除，请删除所有下级小组后再删除");
        }

        $result=$regione->where("id='{$id}'")->delete();
        if($result){
            $this->success("删除成功");
        }else{
            $this->error("删除失败");
        }
    }

    /**
     * //添加行政区划代码
     */
    public function addRegioneAction(){
        $this->LoginIsSystem();
        $this->LoginTrue();
        $regione=M("regione");
        $excel=$_FILES["excel"];  //批量考勤excel表
        $objPHPExcelReader = \PHPExcel_IOFactory::load($excel["tmp_name"]);  //加载excel文件
        foreach($objPHPExcelReader->getWorksheetIterator() as $sheet)  //循环读取sheet
        {
            foreach($sheet->getRowIterator() as $row)  //逐行处理
            {
                foreach($row->getCellIterator() as $cell)  //逐列读取
                {
                    $val=$cell->getValue();
                    if(is_object($val))  $val= $val->__toString();
                    if($cell->getColumn()=='A')
                    {
                        if(!empty($val)){
                            $data[$row->getRowIndex()]['id']=$val;
                        }else{
                            break;
                        }
                    }
                    if($cell->getColumn()=='B')
                    {
                        $data[$row->getRowIndex()]['name']=$val;
                    }
                    if($cell->getColumn()=='C')
                    {
                        $data[$row->getRowIndex()]['pId']=$val;
                    }
                }
            }
        }
        foreach($data as $key => $val){
            $datenew[]= $val;
        }
        $result=$regione->addAll($datenew);
        if($result){
            $this->success("成功导入行政区",U("regionelists"));
        }else{
            $this->error("录入数据库时失败");
        }
    }

    /*录入行政区*/
    public function sysAddRegione(){
        $this->LoginAreaAdmin();
        $this->LoginTrue();
        $regione1=session('regione1');
        $regione2=session('regione2');
        $regione3=session('regione3');
        $this->assign("regione1",$regione1);
        $this->assign("regione2",$regione2);
        $this->assign("regione3",$regione3);
        $this->display();
    }

    /*录入行政区*/
    public function sysAddRegioneAction(){
        $this->LoginAreaAdmin();
        $date['pId']=$_POST['regione1'];
        if(!empty($_POST['regione2'])){
            $date['pId']=$_POST['regione2'];
        }
        if(!empty($_POST['regione3'])){
            $date['pId']=$_POST['regione3'];
        }
        if(empty($date['pId'])){
            $this->error("请选择地区");
        }
        $date['id']=$_POST['id'];
        $date['name']=$_POST['name'];
        if(empty($date['id'])){
            $this->error("请输入行政区代码");
        }
        if(empty($date['name'])){
            $this->error("请输入行政区名称");
        }

        $regione=M("regione");
        $result=$regione->add($date);
        if($result){
            $this->success("成功导入行政区",U("regionelists"));
        }else{
            $this->error("录入数据库时失败");
        }
    }

}